home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Programming / fpc / units / exec.pp < prev    next >
Text File  |  1998-09-21  |  32KB  |  1,584 lines

  1. {
  2.     This file is part of the Free Pascal run time library.
  3.  
  4.     A file in Amiga system run time library.
  5.     Copyright (c) 1998 by Nils Sjoholm
  6.     member of the Amiga RTL development team.
  7.  
  8.     See the file COPYING.FPC, included in this distribution,
  9.     for details about the copyright.
  10.  
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14.  
  15.  **********************************************************************}
  16.  
  17.  
  18. UNIT EXEC;
  19.  
  20. INTERFACE
  21.  
  22. {$I exec.inc}
  23.  
  24.  
  25. PROCEDURE AbortIO(ioRequest : pIORequest);
  26. PROCEDURE AddDevice(device : pDevice);
  27. PROCEDURE AddHead(list : pList; node : pNode);
  28. PROCEDURE AddIntServer(intNumber : LONGINT; interrupt : pInterrupt);
  29. PROCEDURE AddLibrary(lib : pLibrary);
  30. PROCEDURE AddMemHandler(memhand : pInterrupt);
  31. PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; name : pCHAR);
  32. PROCEDURE AddPort(port : pMsgPort);
  33. PROCEDURE AddResource(resource : POINTER);
  34. PROCEDURE AddSemaphore(sigSem : pSignalSemaphore);
  35. PROCEDURE AddTail(list : pList; node : pNode);
  36. FUNCTION AddTask(task : pTask; initPC : POINTER; finalPC : POINTER) : POINTER;
  37. PROCEDURE Alert(alertNum : ULONG);
  38. FUNCTION AllocAbs(byteSize : ULONG; location : POINTER) : POINTER;
  39. FUNCTION Allocate(freeList : pMemHeader; byteSize : ULONG) : POINTER;
  40. FUNCTION AllocEntry(entry : pMemList) : pMemList;
  41. FUNCTION AllocMem(byteSize : ULONG; requirements : ULONG) : POINTER;
  42. FUNCTION AllocPooled(poolHeader : POINTER; memSize : ULONG) : POINTER;
  43. FUNCTION AllocSignal(signalNum : LONGINT) : SHORTINT;
  44. FUNCTION AllocTrap(trapNum : LONGINT) : LONGINT;
  45. FUNCTION AllocVec(byteSize : ULONG; requirements : ULONG) : POINTER;
  46. FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore) : BOOLEAN;
  47. FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore) : ULONG;
  48. FUNCTION AvailMem(requirements : ULONG) : ULONG;
  49. PROCEDURE CacheClearE(address : POINTER; length : ULONG; caches : ULONG);
  50. PROCEDURE CacheClearU;
  51. FUNCTION CacheControl(cacheBits : ULONG; cacheMask : ULONG) : ULONG;
  52. PROCEDURE CachePostDMA(address : POINTER; VAR length : ULONG; flags : ULONG);
  53. FUNCTION CachePreDMA(address : POINTER; VAR length : ULONG; flags : ULONG) : POINTER;
  54. PROCEDURE Cause(interrupt : pInterrupt);
  55. FUNCTION CheckIO(ioRequest : pIORequest) : pIORequest;
  56. PROCEDURE ChildFree(tid : POINTER);
  57. PROCEDURE ChildOrphan(tid : POINTER);
  58. PROCEDURE ChildStatus(tid : POINTER);
  59. PROCEDURE ChildWait(tid : POINTER);
  60. PROCEDURE CloseDevice(ioRequest : pIORequest);
  61. PROCEDURE CloseLibrary(lib : pLibrary);
  62. PROCEDURE ColdReboot;
  63. PROCEDURE CopyMem(source : POINTER; dest : POINTER; size : ULONG);
  64. PROCEDURE CopyMemQuick(source : POINTER; dest : POINTER; size : ULONG);
  65. FUNCTION CreateIORequest(port : pMsgPort; size : ULONG) : POINTER;
  66. FUNCTION CreateMsgPort : pMsgPort;
  67. FUNCTION CreatePool(requirements : ULONG; puddleSize : ULONG; threshSize : ULONG) : POINTER;
  68. PROCEDURE Deallocate(freeList : pMemHeader; memoryBlock : POINTER; byteSize : ULONG);
  69. PROCEDURE Debug(flags : ULONG);
  70. PROCEDURE DeleteIORequest(iorequest : POINTER);
  71. PROCEDURE DeleteMsgPort(port : pMsgPort);
  72. PROCEDURE DeletePool(poolHeader : POINTER);
  73. PROCEDURE Disable;
  74. FUNCTION DoIO(ioRequest : pIORequest) : SHORTINT;
  75. PROCEDURE Enable;
  76. PROCEDURE Enqueue(list : pList; node : pNode);
  77. PROCEDURE ExecFreeMem(memoryBlock : POINTER; byteSize : ULONG);
  78. PROCEDURE ExecInsert(list : pList; node : pNode; pred : pNode);
  79. FUNCTION FindName(list : pList; name : pCHAR) : pNode;
  80. FUNCTION FindPort(name : pCHAR) : pMsgPort;
  81. FUNCTION FindResident(name : pCHAR) : pResident;
  82. FUNCTION FindSemaphore(sigSem : pCHAR) : pSignalSemaphore;
  83. FUNCTION FindTask(name : pCHAR) : pTask;
  84. PROCEDURE Forbid;
  85. PROCEDURE FreeEntry(entry : pMemList);
  86. PROCEDURE FreePooled(poolHeader : POINTER; memory : POINTER; memSize : ULONG);
  87. PROCEDURE FreeSignal(signalNum : LONGINT);
  88. PROCEDURE FreeTrap(trapNum : LONGINT);
  89. PROCEDURE FreeVec(memoryBlock : POINTER);
  90. FUNCTION GetCC : ULONG;
  91. FUNCTION GetMsg(port : pMsgPort) : pMessage;
  92. PROCEDURE InitCode(startClass : ULONG; version : ULONG);
  93. FUNCTION InitResident(resident : pResident; segList : ULONG) : POINTER;
  94. PROCEDURE InitSemaphore(sigSem : pSignalSemaphore);
  95. PROCEDURE InitStruct(initTable : POINTER; memory : POINTER; size : ULONG);
  96. PROCEDURE MakeFunctions(target : POINTER; functionArray : POINTER; funcDispBase : ULONG);
  97. FUNCTION MakeLibrary(funcInit : POINTER; structInit : POINTER; libInit : tPROCEDURE; dataSize : ULONG; segList : ULONG) : pLibrary;
  98. FUNCTION ObtainQuickVector(interruptCode : POINTER) : ULONG;
  99. PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore);
  100. PROCEDURE ObtainSemaphoreList(sigSem : pList);
  101. PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore);
  102. FUNCTION OldOpenLibrary(libName : pCHAR) : pLibrary;
  103. FUNCTION OpenDevice(devName : pCHAR; unite : ULONG; ioRequest : pIORequest; flags : ULONG) : SHORTINT;
  104. FUNCTION OpenLibrary(libName : pCHAR; version : ULONG) : pLibrary;
  105. FUNCTION OpenResource(resName : pCHAR) : POINTER;
  106. PROCEDURE Permit;
  107. FUNCTION Procure(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage) : BOOLEAN;
  108. PROCEDURE PutMsg(port : pMsgPort; message : pMessage);
  109. PROCEDURE RawDoFmt(formatString : pCHAR; dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER);
  110. PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore);
  111. PROCEDURE ReleaseSemaphoreList(sigSem : pList);
  112. PROCEDURE RemDevice(device : pDevice);
  113. FUNCTION RemHead(list : pList) : pNode;
  114. PROCEDURE RemIntServer(intNumber : LONGINT; interrupt : pInterrupt);
  115. PROCEDURE RemLibrary(lib : pLibrary);
  116. PROCEDURE RemMemHandler(memhand : pInterrupt);
  117. PROCEDURE Remove(node : pNode);
  118. PROCEDURE RemPort(port : pMsgPort);
  119. PROCEDURE RemResource(resource : POINTER);
  120. PROCEDURE RemSemaphore(sigSem : pSignalSemaphore);
  121. FUNCTION RemTail(list : pList) : pNode;
  122. PROCEDURE RemTask(task : pTask);
  123. PROCEDURE ReplyMsg(message : pMessage);
  124. PROCEDURE SendIO(ioRequest : pIORequest);
  125. FUNCTION SetExcept(newSignals : ULONG; signalSet : ULONG) : ULONG;
  126. FUNCTION SetFunction(lib : pLibrary; funcOffset : LONGINT; newFunction : tPROCEDURE) : POINTER;
  127. FUNCTION SetIntVector(intNumber : LONGINT; interrupt : pInterrupt) : pInterrupt;
  128. FUNCTION SetSignal(newSignals : ULONG; signalSet : ULONG) : ULONG;
  129. FUNCTION SetSR(newSR : ULONG; mask : ULONG) : ULONG;
  130. FUNCTION SetTaskPri(task : pTask; priority : LONGINT) : SHORTINT;
  131. PROCEDURE Signal(task : pTask; signalSet : ULONG);
  132. PROCEDURE StackSwap(newStack : pStackSwapStruct);
  133. PROCEDURE SumKickData;
  134. PROCEDURE SumLibrary(lib : pLibrary);
  135. FUNCTION SuperState : POINTER;
  136. FUNCTION Supervisor(userFunction : tPROCEDURE) : ULONG;
  137. FUNCTION TypeOfMem(address : POINTER) : ULONG;
  138. PROCEDURE UserState(sysStack : POINTER);
  139. PROCEDURE Vacate(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage);
  140. FUNCTION Wait(signalSet : ULONG) : ULONG;
  141. FUNCTION WaitIO(ioRequest : pIORequest) : SHORTINT;
  142. FUNCTION WaitPort(port : pMsgPort) : pMessage;
  143.  
  144. IMPLEMENTATION
  145.  
  146. PROCEDURE AbortIO(ioRequest : pIORequest);
  147. BEGIN
  148.   ASM
  149.     MOVE.L  A6,-(A7)
  150.     MOVEA.L ioRequest,A1
  151.     MOVEA.L _ExecBase,A6
  152.     JSR -480(A6)
  153.     MOVEA.L (A7)+,A6
  154.   END;
  155. END;
  156.  
  157. PROCEDURE AddDevice(device : pDevice);
  158. BEGIN
  159.   ASM
  160.     MOVE.L  A6,-(A7)
  161.     MOVEA.L device,A1
  162.     MOVEA.L _ExecBase,A6
  163.     JSR -432(A6)
  164.     MOVEA.L (A7)+,A6
  165.   END;
  166. END;
  167.  
  168. PROCEDURE AddHead(list : pList; node : pNode);
  169. BEGIN
  170.   ASM
  171.     MOVE.L  A6,-(A7)
  172.     MOVEA.L list,A0
  173.     MOVEA.L node,A1
  174.     MOVEA.L _ExecBase,A6
  175.     JSR -240(A6)
  176.     MOVEA.L (A7)+,A6
  177.   END;
  178. END;
  179.  
  180. PROCEDURE AddIntServer(intNumber : LONGINT; interrupt : pInterrupt);
  181. BEGIN
  182.   ASM
  183.     MOVE.L  A6,-(A7)
  184.     MOVE.L  intNumber,D0
  185.     MOVEA.L interrupt,A1
  186.     MOVEA.L _ExecBase,A6
  187.     JSR -168(A6)
  188.     MOVEA.L (A7)+,A6
  189.   END;
  190. END;
  191.  
  192. PROCEDURE AddLibrary(lib : pLibrary);
  193. BEGIN
  194.   ASM
  195.     MOVE.L  A6,-(A7)
  196.     MOVEA.L lib,A1
  197.     MOVEA.L _ExecBase,A6
  198.     JSR -396(A6)
  199.     MOVEA.L (A7)+,A6
  200.   END;
  201. END;
  202.  
  203. PROCEDURE AddMemHandler(memhand : pInterrupt);
  204. BEGIN
  205.   ASM
  206.     MOVE.L  A6,-(A7)
  207.     MOVEA.L memhand,A1
  208.     MOVEA.L _ExecBase,A6
  209.     JSR -774(A6)
  210.     MOVEA.L (A7)+,A6
  211.   END;
  212. END;
  213.  
  214. PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; name : pCHAR);
  215. BEGIN
  216.   ASM
  217.     MOVE.L  A6,-(A7)
  218.     MOVE.L  size,D0
  219.     MOVE.L  attributes,D1
  220.     MOVE.L  pri,D2
  221.     MOVEA.L base,A0
  222.     MOVEA.L name,A1
  223.     MOVEA.L _ExecBase,A6
  224.     JSR -618(A6)
  225.     MOVEA.L (A7)+,A6
  226.   END;
  227. END;
  228.  
  229. PROCEDURE AddPort(port : pMsgPort);
  230. BEGIN
  231.   ASM
  232.     MOVE.L  A6,-(A7)
  233.     MOVEA.L port,A1
  234.     MOVEA.L _ExecBase,A6
  235.     JSR -354(A6)
  236.     MOVEA.L (A7)+,A6
  237.   END;
  238. END;
  239.  
  240. PROCEDURE AddResource(resource : POINTER);
  241. BEGIN
  242.   ASM
  243.     MOVE.L  A6,-(A7)
  244.     MOVEA.L resource,A1
  245.     MOVEA.L _ExecBase,A6
  246.     JSR -486(A6)
  247.     MOVEA.L (A7)+,A6
  248.   END;
  249. END;
  250.  
  251. PROCEDURE AddSemaphore(sigSem : pSignalSemaphore);
  252. BEGIN
  253.   ASM
  254.     MOVE.L  A6,-(A7)
  255.     MOVEA.L sigSem,A1
  256.     MOVEA.L _ExecBase,A6
  257.     JSR -600(A6)
  258.     MOVEA.L (A7)+,A6
  259.   END;
  260. END;
  261.  
  262. PROCEDURE AddTail(list : pList; node : pNode);
  263. BEGIN
  264.   ASM
  265.     MOVE.L  A6,-(A7)
  266.     MOVEA.L list,A0
  267.     MOVEA.L node,A1
  268.     MOVEA.L _ExecBase,A6
  269.     JSR -246(A6)
  270.     MOVEA.L (A7)+,A6
  271.   END;
  272. END;
  273.  
  274. FUNCTION AddTask(task : pTask; initPC : POINTER; finalPC : POINTER) : POINTER;
  275. BEGIN
  276.   ASM
  277.     MOVE.L  A6,-(A7)
  278.     MOVEA.L task,A1
  279.     MOVEA.L initPC,A2
  280.     MOVEA.L finalPC,A3
  281.     MOVEA.L _ExecBase,A6
  282.     JSR -282(A6)
  283.     MOVEA.L (A7)+,A6
  284.     MOVE.L  D0,@RESULT
  285.   END;
  286. END;
  287.  
  288. PROCEDURE Alert(alertNum : ULONG);
  289. BEGIN
  290.   ASM
  291.     MOVE.L  A6,-(A7)
  292.     MOVE.L  alertNum,D7
  293.     MOVEA.L _ExecBase,A6
  294.     JSR -108(A6)
  295.     MOVEA.L (A7)+,A6
  296.   END;
  297. END;
  298.  
  299. FUNCTION AllocAbs(byteSize : ULONG; location : POINTER) : POINTER;
  300. BEGIN
  301.   ASM
  302.     MOVE.L  A6,-(A7)
  303.     MOVE.L  byteSize,D0
  304.     MOVEA.L location,A1
  305.     MOVEA.L _ExecBase,A6
  306.     JSR -204(A6)
  307.     MOVEA.L (A7)+,A6
  308.     MOVE.L  D0,@RESULT
  309.   END;
  310. END;
  311.  
  312. FUNCTION Allocate(freeList : pMemHeader; byteSize : ULONG) : POINTER;
  313. BEGIN
  314.   ASM
  315.     MOVE.L  A6,-(A7)
  316.     MOVEA.L freeList,A0
  317.     MOVE.L  byteSize,D0
  318.     MOVEA.L _ExecBase,A6
  319.     JSR -186(A6)
  320.     MOVEA.L (A7)+,A6
  321.     MOVE.L  D0,@RESULT
  322.   END;
  323. END;
  324.  
  325. FUNCTION AllocEntry(entry : pMemList) : pMemList;
  326. BEGIN
  327.   ASM
  328.     MOVE.L  A6,-(A7)
  329.     MOVEA.L entry,A0
  330.     MOVEA.L _ExecBase,A6
  331.     JSR -222(A6)
  332.     MOVEA.L (A7)+,A6
  333.     MOVE.L  D0,@RESULT
  334.   END;
  335. END;
  336.  
  337. FUNCTION AllocMem(byteSize : ULONG; requirements : ULONG) : POINTER;
  338. BEGIN
  339.   ASM
  340.     MOVE.L  A6,-(A7)
  341.     MOVE.L  byteSize,D0
  342.     MOVE.L  requirements,D1
  343.     MOVEA.L _ExecBase,A6
  344.     JSR -198(A6)
  345.     MOVEA.L (A7)+,A6
  346.     MOVE.L  D0,@RESULT
  347.   END;
  348. END;
  349.  
  350. FUNCTION AllocPooled(poolHeader : POINTER; memSize : ULONG) : POINTER;
  351. BEGIN
  352.   ASM
  353.     MOVE.L  A6,-(A7)
  354.     MOVEA.L poolHeader,A0
  355.     MOVE.L  memSize,D0
  356.     MOVEA.L _ExecBase,A6
  357.     JSR -708(A6)
  358.     MOVEA.L (A7)+,A6
  359.     MOVE.L  D0,@RESULT
  360.   END;
  361. END;
  362.  
  363. FUNCTION AllocSignal(signalNum : LONGINT) : SHORTINT;
  364. BEGIN
  365.   ASM
  366.     MOVE.L  A6,-(A7)
  367.     MOVE.L  signalNum,D0
  368.     MOVEA.L _ExecBase,A6
  369.     JSR -330(A6)
  370.     MOVEA.L (A7)+,A6
  371.     MOVE.L  D0,@RESULT
  372.   END;
  373. END;
  374.  
  375. FUNCTION AllocTrap(trapNum : LONGINT) : LONGINT;
  376. BEGIN
  377.   ASM
  378.     MOVE.L  A6,-(A7)
  379.     MOVE.L  trapNum,D0
  380.     MOVEA.L _ExecBase,A6
  381.     JSR -342(A6)
  382.     MOVEA.L (A7)+,A6
  383.     MOVE.L  D0,@RESULT
  384.   END;
  385. END;
  386.  
  387. FUNCTION AllocVec(byteSize : ULONG; requirements : ULONG) : POINTER;
  388. BEGIN
  389.   ASM
  390.     MOVE.L  A6,-(A7)
  391.     MOVE.L  byteSize,D0
  392.     MOVE.L  requirements,D1
  393.     MOVEA.L _ExecBase,A6
  394.     JSR -684(A6)
  395.     MOVEA.L (A7)+,A6
  396.     MOVE.L  D0,@RESULT
  397.   END;
  398. END;
  399.  
  400. FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore) : BOOLEAN;
  401. BEGIN
  402.   ASM
  403.     MOVE.L  A6,-(A7)
  404.     MOVEA.L sigSem,A0
  405.     MOVEA.L _ExecBase,A6
  406.     JSR -576(A6)
  407.     MOVEA.L (A7)+,A6
  408.     TST.L   D0
  409.     BEQ.B   @end
  410.     MOVEQ   #1,D0
  411.     @end: MOVE.B  D0,@RESULT
  412.   END;
  413. END;
  414.  
  415. FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore) : ULONG;
  416. BEGIN
  417.   ASM
  418.     MOVE.L  A6,-(A7)
  419.     MOVEA.L sigSem,A0
  420.     MOVEA.L _ExecBase,A6
  421.     JSR -720(A6)
  422.     MOVEA.L (A7)+,A6
  423.     MOVE.L  D0,@RESULT
  424.   END;
  425. END;
  426.  
  427. FUNCTION AvailMem(requirements : ULONG) : ULONG;
  428. BEGIN
  429.   ASM
  430.     MOVE.L  A6,-(A7)
  431.     MOVE.L  requirements,D1
  432.     MOVEA.L _ExecBase,A6
  433.     JSR -216(A6)
  434.     MOVEA.L (A7)+,A6
  435.     MOVE.L  D0,@RESULT
  436.   END;
  437. END;
  438.  
  439. PROCEDURE CacheClearE(address : POINTER; length : ULONG; caches : ULONG);
  440. BEGIN
  441.   ASM
  442.     MOVE.L  A6,-(A7)
  443.     MOVEA.L address,A0
  444.     MOVE.L  length,D0
  445.     MOVE.L  caches,D1
  446.     MOVEA.L _ExecBase,A6
  447.     JSR -642(A6)
  448.     MOVEA.L (A7)+,A6
  449.   END;
  450. END;
  451.  
  452. PROCEDURE CacheClearU;
  453. BEGIN
  454.   ASM
  455.     MOVE.L  A6,-(A7)
  456.     MOVEA.L _ExecBase,A6
  457.     JSR -636(A6)
  458.     MOVEA.L (A7)+,A6
  459.   END;
  460. END;
  461.  
  462. FUNCTION CacheControl(cacheBits : ULONG; cacheMask : ULONG) : ULONG;
  463. BEGIN
  464.   ASM
  465.     MOVE.L  A6,-(A7)
  466.     MOVE.L  cacheBits,D0
  467.     MOVE.L  cacheMask,D1
  468.     MOVEA.L _ExecBase,A6
  469.     JSR -648(A6)
  470.     MOVEA.L (A7)+,A6
  471.     MOVE.L  D0,@RESULT
  472.   END;
  473. END;
  474.  
  475. PROCEDURE CachePostDMA(address : POINTER; VAR length : ULONG; flags : ULONG);
  476. BEGIN
  477.   ASM
  478.     MOVE.L  A6,-(A7)
  479.     MOVEA.L address,A0
  480.     MOVEA.L length,A1
  481.     MOVE.L  flags,D0
  482.     MOVEA.L _ExecBase,A6
  483.     JSR -768(A6)
  484.     MOVEA.L (A7)+,A6
  485.   END;
  486. END;
  487.  
  488. FUNCTION CachePreDMA(address : POINTER; VAR length : ULONG; flags : ULONG) : POINTER;
  489. BEGIN
  490.   ASM
  491.     MOVE.L  A6,-(A7)
  492.     MOVEA.L address,A0
  493.     MOVEA.L length,A1
  494.     MOVE.L  flags,D0
  495.     MOVEA.L _ExecBase,A6
  496.     JSR -762(A6)
  497.     MOVEA.L (A7)+,A6
  498.     MOVE.L  D0,@RESULT
  499.   END;
  500. END;
  501.  
  502. PROCEDURE Cause(interrupt : pInterrupt);
  503. BEGIN
  504.   ASM
  505.     MOVE.L  A6,-(A7)
  506.     MOVEA.L interrupt,A1
  507.     MOVEA.L _ExecBase,A6
  508.     JSR -180(A6)
  509.     MOVEA.L (A7)+,A6
  510.   END;
  511. END;
  512.  
  513. FUNCTION CheckIO(ioRequest : pIORequest) : pIORequest;
  514. BEGIN
  515.   ASM
  516.     MOVE.L  A6,-(A7)
  517.     MOVEA.L ioRequest,A1
  518.     MOVEA.L _ExecBase,A6
  519.     JSR -468(A6)
  520.     MOVEA.L (A7)+,A6
  521.     MOVE.L  D0,@RESULT
  522.   END;
  523. END;
  524.  
  525. PROCEDURE ChildFree(tid : POINTER);
  526. BEGIN
  527.   ASM
  528.     MOVE.L  A6,-(A7)
  529.     MOVE.L  tid,D0
  530.     MOVEA.L _ExecBase,A6
  531.     JSR -738(A6)
  532.     MOVEA.L (A7)+,A6
  533.   END;
  534. END;
  535.  
  536. PROCEDURE ChildOrphan(tid : POINTER);
  537. BEGIN
  538.   ASM
  539.     MOVE.L  A6,-(A7)
  540.     MOVE.L  tid,D0
  541.     MOVEA.L _ExecBase,A6
  542.     JSR -744(A6)
  543.     MOVEA.L (A7)+,A6
  544.   END;
  545. END;
  546.  
  547. PROCEDURE ChildStatus(tid : POINTER);
  548. BEGIN
  549.   ASM
  550.     MOVE.L  A6,-(A7)
  551.     MOVE.L  tid,D0
  552.     MOVEA.L _ExecBase,A6
  553.     JSR -750(A6)
  554.     MOVEA.L (A7)+,A6
  555.   END;
  556. END;
  557.  
  558. PROCEDURE ChildWait(tid : POINTER);
  559. BEGIN
  560.   ASM
  561.     MOVE.L  A6,-(A7)
  562.     MOVE.L  tid,D0
  563.     MOVEA.L _ExecBase,A6
  564.     JSR -756(A6)
  565.     MOVEA.L (A7)+,A6
  566.   END;
  567. END;
  568.  
  569. PROCEDURE CloseDevice(ioRequest : pIORequest);
  570. BEGIN
  571.   ASM
  572.     MOVE.L  A6,-(A7)
  573.     MOVEA.L ioRequest,A1
  574.     MOVEA.L _ExecBase,A6
  575.     JSR -450(A6)
  576.     MOVEA.L (A7)+,A6
  577.   END;
  578. END;
  579.  
  580. PROCEDURE CloseLibrary(lib : pLibrary);
  581. BEGIN
  582.   ASM
  583.     MOVE.L  A6,-(A7)
  584.     MOVEA.L lib,A1
  585.     MOVEA.L _ExecBase,A6
  586.     JSR -414(A6)
  587.     MOVEA.L (A7)+,A6
  588.   END;
  589. END;
  590.  
  591. PROCEDURE ColdReboot;
  592. BEGIN
  593.   ASM
  594.     MOVE.L  A6,-(A7)
  595.     MOVEA.L _ExecBase,A6
  596.     JSR -726(A6)
  597.     MOVEA.L (A7)+,A6
  598.   END;
  599. END;
  600.  
  601. PROCEDURE CopyMem(source : POINTER; dest : POINTER; size : ULONG);
  602. BEGIN
  603.   ASM
  604.     MOVE.L  A6,-(A7)
  605.     MOVEA.L source,A0
  606.     MOVEA.L dest,A1
  607.     MOVE.L  size,D0
  608.     MOVEA.L _ExecBase,A6
  609.     JSR -624(A6)
  610.     MOVEA.L (A7)+,A6
  611.   END;
  612. END;
  613.  
  614. PROCEDURE CopyMemQuick(source : POINTER; dest : POINTER; size : ULONG);
  615. BEGIN
  616.   ASM
  617.     MOVE.L  A6,-(A7)
  618.     MOVEA.L source,A0
  619.     MOVEA.L dest,A1
  620.     MOVE.L  size,D0
  621.     MOVEA.L _ExecBase,A6
  622.     JSR -630(A6)
  623.     MOVEA.L (A7)+,A6
  624.   END;
  625. END;
  626.  
  627. FUNCTION CreateIORequest(port : pMsgPort; size : ULONG) : POINTER;
  628. BEGIN
  629.   ASM
  630.     MOVE.L  A6,-(A7)
  631.     MOVEA.L port,A0
  632.     MOVE.L  size,D0
  633.     MOVEA.L _ExecBase,A6
  634.     JSR -654(A6)
  635.     MOVEA.L (A7)+,A6
  636.     MOVE.L  D0,@RESULT
  637.   END;
  638. END;
  639.  
  640. FUNCTION CreateMsgPort : pMsgPort;
  641. BEGIN
  642.   ASM
  643.     MOVE.L  A6,-(A7)
  644.     MOVEA.L _ExecBase,A6
  645.     JSR -666(A6)
  646.     MOVEA.L (A7)+,A6
  647.     MOVE.L  D0,@RESULT
  648.   END;
  649. END;
  650.  
  651. FUNCTION CreatePool(requirements : ULONG; puddleSize : ULONG; threshSize : ULONG) : POINTER;
  652. BEGIN
  653.   ASM
  654.     MOVE.L  A6,-(A7)
  655.     MOVE.L  requirements,D0
  656.     MOVE.L  puddleSize,D1
  657.     MOVE.L  threshSize,D2
  658.     MOVEA.L _ExecBase,A6
  659.     JSR -696(A6)
  660.     MOVEA.L (A7)+,A6
  661.     MOVE.L  D0,@RESULT
  662.   END;
  663. END;
  664.  
  665. PROCEDURE Deallocate(freeList : pMemHeader; memoryBlock : POINTER; byteSize : ULONG);
  666. BEGIN
  667.   ASM
  668.     MOVE.L  A6,-(A7)
  669.     MOVEA.L freeList,A0
  670.     MOVEA.L memoryBlock,A1
  671.     MOVE.L  byteSize,D0
  672.     MOVEA.L _ExecBase,A6
  673.     JSR -192(A6)
  674.     MOVEA.L (A7)+,A6
  675.   END;
  676. END;
  677.  
  678. PROCEDURE Debug(flags : ULONG);
  679. BEGIN
  680.   ASM
  681.     MOVE.L  A6,-(A7)
  682.     MOVE.L  flags,D0
  683.     MOVEA.L _ExecBase,A6
  684.     JSR -114(A6)
  685.     MOVEA.L (A7)+,A6
  686.   END;
  687. END;
  688.  
  689. PROCEDURE DeleteIORequest(iorequest : POINTER);
  690. BEGIN
  691.   ASM
  692.     MOVE.L  A6,-(A7)
  693.     MOVEA.L iorequest,A0
  694.     MOVEA.L _ExecBase,A6
  695.     JSR -660(A6)
  696.     MOVEA.L (A7)+,A6
  697.   END;
  698. END;
  699.  
  700. PROCEDURE DeleteMsgPort(port : pMsgPort);
  701. BEGIN
  702.   ASM
  703.     MOVE.L  A6,-(A7)
  704.     MOVEA.L port,A0
  705.     MOVEA.L _ExecBase,A6
  706.     JSR -672(A6)
  707.     MOVEA.L (A7)+,A6
  708.   END;
  709. END;
  710.  
  711. PROCEDURE DeletePool(poolHeader : POINTER);
  712. BEGIN
  713.   ASM
  714.     MOVE.L  A6,-(A7)
  715.     MOVEA.L poolHeader,A0
  716.     MOVEA.L _ExecBase,A6
  717.     JSR -702(A6)
  718.     MOVEA.L (A7)+,A6
  719.   END;
  720. END;
  721.  
  722. PROCEDURE Disable;
  723. BEGIN
  724.   ASM
  725.     MOVE.L  A6,-(A7)
  726.     MOVEA.L _ExecBase,A6
  727.     JSR -120(A6)
  728.     MOVEA.L (A7)+,A6
  729.   END;
  730. END;
  731.  
  732. FUNCTION DoIO(ioRequest : pIORequest) : SHORTINT;
  733. BEGIN
  734.   ASM
  735.     MOVE.L  A6,-(A7)
  736.     MOVEA.L ioRequest,A1
  737.     MOVEA.L _ExecBase,A6
  738.     JSR -456(A6)
  739.     MOVEA.L (A7)+,A6
  740.     MOVE.L  D0,@RESULT
  741.   END;
  742. END;
  743.  
  744. PROCEDURE Enable;
  745. BEGIN
  746.   ASM
  747.     MOVE.L  A6,-(A7)
  748.     MOVEA.L _ExecBase,A6
  749.     JSR -126(A6)
  750.     MOVEA.L (A7)+,A6
  751.   END;
  752. END;
  753.  
  754. PROCEDURE Enqueue(list : pList; node : pNode);
  755. BEGIN
  756.   ASM
  757.     MOVE.L  A6,-(A7)
  758.     MOVEA.L list,A0
  759.     MOVEA.L node,A1
  760.     MOVEA.L _ExecBase,A6
  761.     JSR -270(A6)
  762.     MOVEA.L (A7)+,A6
  763.   END;
  764. END;
  765.  
  766. PROCEDURE ExecFreeMem(memoryBlock : POINTER; byteSize : ULONG);
  767. BEGIN
  768.   ASM
  769.     MOVE.L  A6,-(A7)
  770.     MOVEA.L memoryBlock,A1
  771.     MOVE.L  byteSize,D0
  772.     MOVEA.L _ExecBase,A6
  773.     JSR -210(A6)
  774.     MOVEA.L (A7)+,A6
  775.   END;
  776. END;
  777.  
  778. PROCEDURE ExecInsert(list : pList; node : pNode; pred : pNode);
  779. BEGIN
  780.   ASM
  781.     MOVE.L  A6,-(A7)
  782.     MOVEA.L list,A0
  783.     MOVEA.L node,A1
  784.     MOVEA.L pred,A2
  785.     MOVEA.L _ExecBase,A6
  786.     JSR -234(A6)
  787.     MOVEA.L (A7)+,A6
  788.   END;
  789. END;
  790.  
  791. FUNCTION FindName(list : pList; name : pCHAR) : pNode;
  792. BEGIN
  793.   ASM
  794.     MOVE.L  A6,-(A7)
  795.     MOVEA.L list,A0
  796.     MOVEA.L name,A1
  797.     MOVEA.L _ExecBase,A6
  798.     JSR -276(A6)
  799.     MOVEA.L (A7)+,A6
  800.     MOVE.L  D0,@RESULT
  801.   END;
  802. END;
  803.  
  804. FUNCTION FindPort(name : pCHAR) : pMsgPort;
  805. BEGIN
  806.   ASM
  807.     MOVE.L  A6,-(A7)
  808.     MOVEA.L name,A1
  809.     MOVEA.L _ExecBase,A6
  810.     JSR -390(A6)
  811.     MOVEA.L (A7)+,A6
  812.     MOVE.L  D0,@RESULT
  813.   END;
  814. END;
  815.  
  816. FUNCTION FindResident(name : pCHAR) : pResident;
  817. BEGIN
  818.   ASM
  819.     MOVE.L  A6,-(A7)
  820.     MOVEA.L name,A1
  821.     MOVEA.L _ExecBase,A6
  822.     JSR -096(A6)
  823.     MOVEA.L (A7)+,A6
  824.     MOVE.L  D0,@RESULT
  825.   END;
  826. END;
  827.  
  828. FUNCTION FindSemaphore(sigSem : pCHAR) : pSignalSemaphore;
  829. BEGIN
  830.   ASM
  831.     MOVE.L  A6,-(A7)
  832.     MOVEA.L sigSem,A1
  833.     MOVEA.L _ExecBase,A6
  834.     JSR -594(A6)
  835.     MOVEA.L (A7)+,A6
  836.     MOVE.L  D0,@RESULT
  837.   END;
  838. END;
  839.  
  840. FUNCTION FindTask(name : pCHAR) : pTask;
  841. BEGIN
  842.   ASM
  843.     MOVE.L  A6,-(A7)
  844.     MOVEA.L name,A1
  845.     MOVEA.L _ExecBase,A6
  846.     JSR -294(A6)
  847.     MOVEA.L (A7)+,A6
  848.     MOVE.L  D0,@RESULT
  849.   END;
  850. END;
  851.  
  852. PROCEDURE Forbid;
  853. BEGIN
  854.   ASM
  855.     MOVE.L  A6,-(A7)
  856.     MOVEA.L _ExecBase,A6
  857.     JSR -132(A6)
  858.     MOVEA.L (A7)+,A6
  859.   END;
  860. END;
  861.  
  862. PROCEDURE FreeEntry(entry : pMemList);
  863. BEGIN
  864.   ASM
  865.     MOVE.L  A6,-(A7)
  866.     MOVEA.L entry,A0
  867.     MOVEA.L _ExecBase,A6
  868.     JSR -228(A6)
  869.     MOVEA.L (A7)+,A6
  870.   END;
  871. END;
  872.  
  873. PROCEDURE FreePooled(poolHeader : POINTER; memory : POINTER; memSize : ULONG);
  874. BEGIN
  875.   ASM
  876.     MOVE.L  A6,-(A7)
  877.     MOVEA.L poolHeader,A0
  878.     MOVEA.L memory,A1
  879.     MOVE.L  memSize,D0
  880.     MOVEA.L _ExecBase,A6
  881.     JSR -714(A6)
  882.     MOVEA.L (A7)+,A6
  883.   END;
  884. END;
  885.  
  886. PROCEDURE FreeSignal(signalNum : LONGINT);
  887. BEGIN
  888.   ASM
  889.     MOVE.L  A6,-(A7)
  890.     MOVE.L  signalNum,D0
  891.     MOVEA.L _ExecBase,A6
  892.     JSR -336(A6)
  893.     MOVEA.L (A7)+,A6
  894.   END;
  895. END;
  896.  
  897. PROCEDURE FreeTrap(trapNum : LONGINT);
  898. BEGIN
  899.   ASM
  900.     MOVE.L  A6,-(A7)
  901.     MOVE.L  trapNum,D0
  902.     MOVEA.L _ExecBase,A6
  903.     JSR -348(A6)
  904.     MOVEA.L (A7)+,A6
  905.   END;
  906. END;
  907.  
  908. PROCEDURE FreeVec(memoryBlock : POINTER);
  909. BEGIN
  910.   ASM
  911.     MOVE.L  A6,-(A7)
  912.     MOVEA.L memoryBlock,A1
  913.     MOVEA.L _ExecBase,A6
  914.     JSR -690(A6)
  915.     MOVEA.L (A7)+,A6
  916.   END;
  917. END;
  918.  
  919. FUNCTION GetCC : ULONG;
  920. BEGIN
  921.   ASM
  922.     MOVE.L  A6,-(A7)
  923.     MOVEA.L _ExecBase,A6
  924.     JSR -528(A6)
  925.     MOVEA.L (A7)+,A6
  926.     MOVE.L  D0,@RESULT
  927.   END;
  928. END;
  929.  
  930. FUNCTION GetMsg(port : pMsgPort) : pMessage;
  931. BEGIN
  932.   ASM
  933.     MOVE.L  A6,-(A7)
  934.     MOVEA.L port,A0
  935.     MOVEA.L _ExecBase,A6
  936.     JSR -372(A6)
  937.     MOVEA.L (A7)+,A6
  938.     MOVE.L  D0,@RESULT
  939.   END;
  940. END;
  941.  
  942. PROCEDURE InitCode(startClass : ULONG; version : ULONG);
  943. BEGIN
  944.   ASM
  945.     MOVE.L  A6,-(A7)
  946.     MOVE.L  startClass,D0
  947.     MOVE.L  version,D1
  948.     MOVEA.L _ExecBase,A6
  949.     JSR -072(A6)
  950.     MOVEA.L (A7)+,A6
  951.   END;
  952. END;
  953.  
  954. FUNCTION InitResident(resident : pResident; segList : ULONG) : POINTER;
  955. BEGIN
  956.   ASM
  957.     MOVE.L  A6,-(A7)
  958.     MOVEA.L resident,A1
  959.     MOVE.L  segList,D1
  960.     MOVEA.L _ExecBase,A6
  961.     JSR -102(A6)
  962.     MOVEA.L (A7)+,A6
  963.     MOVE.L  D0,@RESULT
  964.   END;
  965. END;
  966.  
  967. PROCEDURE InitSemaphore(sigSem : pSignalSemaphore);
  968. BEGIN
  969.   ASM
  970.     MOVE.L  A6,-(A7)
  971.     MOVEA.L sigSem,A0
  972.     MOVEA.L _ExecBase,A6
  973.     JSR -558(A6)
  974.     MOVEA.L (A7)+,A6
  975.   END;
  976. END;
  977.  
  978. PROCEDURE InitStruct(initTable : POINTER; memory : POINTER; size : ULONG);
  979. BEGIN
  980.   ASM
  981.     MOVE.L  A6,-(A7)
  982.     MOVEA.L initTable,A1
  983.     MOVEA.L memory,A2
  984.     MOVE.L  size,D0
  985.     MOVEA.L _ExecBase,A6
  986.     JSR -078(A6)
  987.     MOVEA.L (A7)+,A6
  988.   END;
  989. END;
  990.  
  991. PROCEDURE MakeFunctions(target : POINTER; functionArray : POINTER; funcDispBase : ULONG);
  992. BEGIN
  993.   ASM
  994.     MOVE.L  A6,-(A7)
  995.     MOVEA.L target,A0
  996.     MOVEA.L functionArray,A1
  997.     MOVEA.L funcDispBase,A2
  998.     MOVEA.L _ExecBase,A6
  999.     JSR -090(A6)
  1000.     MOVEA.L (A7)+,A6
  1001.   END;
  1002. END;
  1003.  
  1004. FUNCTION MakeLibrary(funcInit : POINTER; structInit : POINTER; libInit : tPROCEDURE; dataSize : ULONG; segList : ULONG) : pLibrary;
  1005. BEGIN
  1006.   ASM
  1007.     MOVE.L  A6,-(A7)
  1008.     MOVEA.L funcInit,A0
  1009.     MOVEA.L structInit,A1
  1010.     MOVEA.L libInit,A2
  1011.     MOVE.L  dataSize,D0
  1012.     MOVE.L  segList,D1
  1013.     MOVEA.L _ExecBase,A6
  1014.     JSR -084(A6)
  1015.     MOVEA.L (A7)+,A6
  1016.     MOVE.L  D0,@RESULT
  1017.   END;
  1018. END;
  1019.  
  1020. FUNCTION ObtainQuickVector(interruptCode : POINTER) : ULONG;
  1021. BEGIN
  1022.   ASM
  1023.     MOVE.L  A6,-(A7)
  1024.     MOVEA.L interruptCode,A0
  1025.     MOVEA.L _ExecBase,A6
  1026.     JSR -786(A6)
  1027.     MOVEA.L (A7)+,A6
  1028.     MOVE.L  D0,@RESULT
  1029.   END;
  1030. END;
  1031.  
  1032. PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore);
  1033. BEGIN
  1034.   ASM
  1035.     MOVE.L  A6,-(A7)
  1036.     MOVEA.L sigSem,A0
  1037.     MOVEA.L _ExecBase,A6
  1038.     JSR -564(A6)
  1039.     MOVEA.L (A7)+,A6
  1040.   END;
  1041. END;
  1042.  
  1043. PROCEDURE ObtainSemaphoreList(sigSem : pList);
  1044. BEGIN
  1045.   ASM
  1046.     MOVE.L  A6,-(A7)
  1047.     MOVEA.L sigSem,A0
  1048.     MOVEA.L _ExecBase,A6
  1049.     JSR -582(A6)
  1050.     MOVEA.L (A7)+,A6
  1051.   END;
  1052. END;
  1053.  
  1054. PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore);
  1055. BEGIN
  1056.   ASM
  1057.     MOVE.L  A6,-(A7)
  1058.     MOVEA.L sigSem,A0
  1059.     MOVEA.L _ExecBase,A6
  1060.     JSR -678(A6)
  1061.     MOVEA.L (A7)+,A6
  1062.   END;
  1063. END;
  1064.  
  1065. FUNCTION OldOpenLibrary(libName : pCHAR) : pLibrary;
  1066. BEGIN
  1067.   ASM
  1068.     MOVE.L  A6,-(A7)
  1069.     MOVEA.L libName,A1
  1070.     MOVEA.L _ExecBase,A6
  1071.     JSR -408(A6)
  1072.     MOVEA.L (A7)+,A6
  1073.     MOVE.L  D0,@RESULT
  1074.   END;
  1075. END;
  1076.  
  1077. FUNCTION OpenDevice(devName : pCHAR; unite : ULONG; ioRequest : pIORequest; flags : ULONG) : SHORTINT;
  1078. BEGIN
  1079.   ASM
  1080.     MOVE.L  A6,-(A7)
  1081.     MOVEA.L devName,A0
  1082.     MOVE.L  unite,D0
  1083.     MOVEA.L ioRequest,A1
  1084.     MOVE.L  flags,D1
  1085.     MOVEA.L _ExecBase,A6
  1086.     JSR -444(A6)
  1087.     MOVEA.L (A7)+,A6
  1088.     MOVE.L  D0,@RESULT
  1089.   END;
  1090. END;
  1091.  
  1092. FUNCTION OpenLibrary(libName : pCHAR; version : ULONG) : pLibrary;
  1093. BEGIN
  1094.   ASM
  1095.     MOVE.L  A6,-(A7)
  1096.     MOVEA.L libName,A1
  1097.     MOVE.L  version,D0
  1098.     MOVEA.L _ExecBase,A6
  1099.     JSR -552(A6)
  1100.     MOVEA.L (A7)+,A6
  1101.     MOVE.L  D0,@RESULT
  1102.   END;
  1103. END;
  1104.  
  1105. FUNCTION OpenResource(resName : pCHAR) : POINTER;
  1106. BEGIN
  1107.   ASM
  1108.     MOVE.L  A6,-(A7)
  1109.     MOVEA.L resName,A1
  1110.     MOVEA.L _ExecBase,A6
  1111.     JSR -498(A6)
  1112.     MOVEA.L (A7)+,A6
  1113.     MOVE.L  D0,@RESULT
  1114.   END;
  1115. END;
  1116.  
  1117. PROCEDURE Permit;
  1118. BEGIN
  1119.   ASM
  1120.     MOVE.L  A6,-(A7)
  1121.     MOVEA.L _ExecBase,A6
  1122.     JSR -138(A6)
  1123.     MOVEA.L (A7)+,A6
  1124.   END;
  1125. END;
  1126.  
  1127. FUNCTION Procure(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage) : BOOLEAN;
  1128. BEGIN
  1129.   ASM
  1130.     MOVE.L  A6,-(A7)
  1131.     MOVEA.L sigSem,A0
  1132.     MOVEA.L bidMsg,A1
  1133.     MOVEA.L _ExecBase,A6
  1134.     JSR -540(A6)
  1135.     MOVEA.L (A7)+,A6
  1136.     TST.L   D0
  1137.     BEQ.B   @end
  1138.     MOVEQ   #1,D0
  1139.     @end: MOVE.B  D0,@RESULT
  1140.   END;
  1141. END;
  1142.  
  1143. PROCEDURE PutMsg(port : pMsgPort; message : pMessage);
  1144. BEGIN
  1145.   ASM
  1146.     MOVE.L  A6,-(A7)
  1147.     MOVEA.L port,A0
  1148.     MOVEA.L message,A1
  1149.     MOVEA.L _ExecBase,A6
  1150.     JSR -366(A6)
  1151.     MOVEA.L (A7)+,A6
  1152.   END;
  1153. END;
  1154.  
  1155. PROCEDURE RawDoFmt(formatString : pCHAR; dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER);
  1156. BEGIN
  1157.   ASM
  1158.     MOVE.L  A6,-(A7)
  1159.     MOVEA.L formatString,A0
  1160.     MOVEA.L dataStream,A1
  1161.     MOVEA.L putChProc,A2
  1162.     MOVEA.L putChData,A3
  1163.     MOVEA.L _ExecBase,A6
  1164.     JSR -522(A6)
  1165.     MOVEA.L (A7)+,A6
  1166.   END;
  1167. END;
  1168.  
  1169. PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore);
  1170. BEGIN
  1171.   ASM
  1172.     MOVE.L  A6,-(A7)
  1173.     MOVEA.L sigSem,A0
  1174.     MOVEA.L _ExecBase,A6
  1175.     JSR -570(A6)
  1176.     MOVEA.L (A7)+,A6
  1177.   END;
  1178. END;
  1179.  
  1180. PROCEDURE ReleaseSemaphoreList(sigSem : pList);
  1181. BEGIN
  1182.   ASM
  1183.     MOVE.L  A6,-(A7)
  1184.     MOVEA.L sigSem,A0
  1185.     MOVEA.L _ExecBase,A6
  1186.     JSR -588(A6)
  1187.     MOVEA.L (A7)+,A6
  1188.   END;
  1189. END;
  1190.  
  1191. PROCEDURE RemDevice(device : pDevice);
  1192. BEGIN
  1193.   ASM
  1194.     MOVE.L  A6,-(A7)
  1195.     MOVEA.L device,A1
  1196.     MOVEA.L _ExecBase,A6
  1197.     JSR -438(A6)
  1198.     MOVEA.L (A7)+,A6
  1199.   END;
  1200. END;
  1201.  
  1202. FUNCTION RemHead(list : pList) : pNode;
  1203. BEGIN
  1204.   ASM
  1205.     MOVE.L  A6,-(A7)
  1206.     MOVEA.L list,A0
  1207.     MOVEA.L _ExecBase,A6
  1208.     JSR -258(A6)
  1209.     MOVEA.L (A7)+,A6
  1210.     MOVE.L  D0,@RESULT
  1211.   END;
  1212. END;
  1213.  
  1214. PROCEDURE RemIntServer(intNumber : LONGINT; interrupt : pInterrupt);
  1215. BEGIN
  1216.   ASM
  1217.     MOVE.L  A6,-(A7)
  1218.     MOVE.L  intNumber,D0
  1219.     MOVEA.L interrupt,A1
  1220.     MOVEA.L _ExecBase,A6
  1221.     JSR -174(A6)
  1222.     MOVEA.L (A7)+,A6
  1223.   END;
  1224. END;
  1225.  
  1226. PROCEDURE RemLibrary(lib : pLibrary);
  1227. BEGIN
  1228.   ASM
  1229.     MOVE.L  A6,-(A7)
  1230.     MOVEA.L lib,A1
  1231.     MOVEA.L _ExecBase,A6
  1232.     JSR -402(A6)
  1233.     MOVEA.L (A7)+,A6
  1234.   END;
  1235. END;
  1236.  
  1237. PROCEDURE RemMemHandler(memhand : pInterrupt);
  1238. BEGIN
  1239.   ASM
  1240.     MOVE.L  A6,-(A7)
  1241.     MOVEA.L memhand,A1
  1242.     MOVEA.L _ExecBase,A6
  1243.     JSR -780(A6)
  1244.     MOVEA.L (A7)+,A6
  1245.   END;
  1246. END;
  1247.  
  1248. PROCEDURE Remove(node : pNode);
  1249. BEGIN
  1250.   ASM
  1251.     MOVE.L  A6,-(A7)
  1252.     MOVEA.L node,A1
  1253.     MOVEA.L _ExecBase,A6
  1254.     JSR -252(A6)
  1255.     MOVEA.L (A7)+,A6
  1256.   END;
  1257. END;
  1258.  
  1259. PROCEDURE RemPort(port : pMsgPort);
  1260. BEGIN
  1261.   ASM
  1262.     MOVE.L  A6,-(A7)
  1263.     MOVEA.L port,A1
  1264.     MOVEA.L _ExecBase,A6
  1265.     JSR -360(A6)
  1266.     MOVEA.L (A7)+,A6
  1267.   END;
  1268. END;
  1269.  
  1270. PROCEDURE RemResource(resource : POINTER);
  1271. BEGIN
  1272.   ASM
  1273.     MOVE.L  A6,-(A7)
  1274.     MOVEA.L resource,A1
  1275.     MOVEA.L _ExecBase,A6
  1276.     JSR -492(A6)
  1277.     MOVEA.L (A7)+,A6
  1278.   END;
  1279. END;
  1280.  
  1281. PROCEDURE RemSemaphore(sigSem : pSignalSemaphore);
  1282. BEGIN
  1283.   ASM
  1284.     MOVE.L  A6,-(A7)
  1285.     MOVEA.L sigSem,A1
  1286.     MOVEA.L _ExecBase,A6
  1287.     JSR -606(A6)
  1288.     MOVEA.L (A7)+,A6
  1289.   END;
  1290. END;
  1291.  
  1292. FUNCTION RemTail(list : pList) : pNode;
  1293. BEGIN
  1294.   ASM
  1295.     MOVE.L  A6,-(A7)
  1296.     MOVEA.L list,A0
  1297.     MOVEA.L _ExecBase,A6
  1298.     JSR -264(A6)
  1299.     MOVEA.L (A7)+,A6
  1300.     MOVE.L  D0,@RESULT
  1301.   END;
  1302. END;
  1303.  
  1304. PROCEDURE RemTask(task : pTask);
  1305. BEGIN
  1306.   ASM
  1307.     MOVE.L  A6,-(A7)
  1308.     MOVEA.L task,A1
  1309.     MOVEA.L _ExecBase,A6
  1310.     JSR -288(A6)
  1311.     MOVEA.L (A7)+,A6
  1312.   END;
  1313. END;
  1314.  
  1315. PROCEDURE ReplyMsg(message : pMessage);
  1316. BEGIN
  1317.   ASM
  1318.     MOVE.L  A6,-(A7)
  1319.     MOVEA.L message,A1
  1320.     MOVEA.L _ExecBase,A6
  1321.     JSR -378(A6)
  1322.     MOVEA.L (A7)+,A6
  1323.   END;
  1324. END;
  1325.  
  1326. PROCEDURE SendIO(ioRequest : pIORequest);
  1327. BEGIN
  1328.   ASM
  1329.     MOVE.L  A6,-(A7)
  1330.     MOVEA.L ioRequest,A1
  1331.     MOVEA.L _ExecBase,A6
  1332.     JSR -462(A6)
  1333.     MOVEA.L (A7)+,A6
  1334.   END;
  1335. END;
  1336.  
  1337. FUNCTION SetExcept(newSignals : ULONG; signalSet : ULONG) : ULONG;
  1338. BEGIN
  1339.   ASM
  1340.     MOVE.L  A6,-(A7)
  1341.     MOVE.L  newSignals,D0
  1342.     MOVE.L  signalSet,D1
  1343.     MOVEA.L _ExecBase,A6
  1344.     JSR -312(A6)
  1345.     MOVEA.L (A7)+,A6
  1346.     MOVE.L  D0,@RESULT
  1347.   END;
  1348. END;
  1349.  
  1350. FUNCTION SetFunction(lib : pLibrary; funcOffset : LONGINT; newFunction : tPROCEDURE) : POINTER;
  1351. BEGIN
  1352.   ASM
  1353.     MOVE.L  A6,-(A7)
  1354.     MOVEA.L lib,A1
  1355.     MOVEA.L funcOffset,A0
  1356.     MOVE.L  newFunction,D0
  1357.     MOVEA.L _ExecBase,A6
  1358.     JSR -420(A6)
  1359.     MOVEA.L (A7)+,A6
  1360.     MOVE.L  D0,@RESULT
  1361.   END;
  1362. END;
  1363.  
  1364. FUNCTION SetIntVector(intNumber : LONGINT; interrupt : pInterrupt) : pInterrupt;
  1365. BEGIN
  1366.   ASM
  1367.     MOVE.L  A6,-(A7)
  1368.     MOVE.L  intNumber,D0
  1369.     MOVEA.L interrupt,A1
  1370.     MOVEA.L _ExecBase,A6
  1371.     JSR -162(A6)
  1372.     MOVEA.L (A7)+,A6
  1373.     MOVE.L  D0,@RESULT
  1374.   END;
  1375. END;
  1376.  
  1377. FUNCTION SetSignal(newSignals : ULONG; signalSet : ULONG) : ULONG;
  1378. BEGIN
  1379.   ASM
  1380.     MOVE.L  A6,-(A7)
  1381.     MOVE.L  newSignals,D0
  1382.     MOVE.L  signalSet,D1
  1383.     MOVEA.L _ExecBase,A6
  1384.     JSR -306(A6)
  1385.     MOVEA.L (A7)+,A6
  1386.     MOVE.L  D0,@RESULT
  1387.   END;
  1388. END;
  1389.  
  1390. FUNCTION SetSR(newSR : ULONG; mask : ULONG) : ULONG;
  1391. BEGIN
  1392.   ASM
  1393.     MOVE.L  A6,-(A7)
  1394.     MOVE.L  newSR,D0
  1395.     MOVE.L  mask,D1
  1396.     MOVEA.L _ExecBase,A6
  1397.     JSR -144(A6)
  1398.     MOVEA.L (A7)+,A6
  1399.     MOVE.L  D0,@RESULT
  1400.   END;
  1401. END;
  1402.  
  1403. FUNCTION SetTaskPri(task : pTask; priority : LONGINT) : SHORTINT;
  1404. BEGIN
  1405.   ASM
  1406.     MOVE.L  A6,-(A7)
  1407.     MOVEA.L task,A1
  1408.     MOVE.L  priority,D0
  1409.     MOVEA.L _ExecBase,A6
  1410.     JSR -300(A6)
  1411.     MOVEA.L (A7)+,A6
  1412.     MOVE.L  D0,@RESULT
  1413.   END;
  1414. END;
  1415.  
  1416. PROCEDURE Signal(task : pTask; signalSet : ULONG);
  1417. BEGIN
  1418.   ASM
  1419.     MOVE.L  A6,-(A7)
  1420.     MOVEA.L task,A1
  1421.     MOVE.L  signalSet,D0
  1422.     MOVEA.L _ExecBase,A6
  1423.     JSR -324(A6)
  1424.     MOVEA.L (A7)+,A6
  1425.   END;
  1426. END;
  1427.  
  1428. PROCEDURE StackSwap(newStack : pStackSwapStruct);
  1429. BEGIN
  1430.   ASM
  1431.     MOVE.L  A6,-(A7)
  1432.     MOVEA.L newStack,A0
  1433.     MOVEA.L _ExecBase,A6
  1434.     JSR -732(A6)
  1435.     MOVEA.L (A7)+,A6
  1436.   END;
  1437. END;
  1438.  
  1439. PROCEDURE SumKickData;
  1440. BEGIN
  1441.   ASM
  1442.     MOVE.L  A6,-(A7)
  1443.     MOVEA.L _ExecBase,A6
  1444.     JSR -612(A6)
  1445.     MOVEA.L (A7)+,A6
  1446.   END;
  1447. END;
  1448.  
  1449. PROCEDURE SumLibrary(lib : pLibrary);
  1450. BEGIN
  1451.   ASM
  1452.     MOVE.L  A6,-(A7)
  1453.     MOVEA.L lib,A1
  1454.     MOVEA.L _ExecBase,A6
  1455.     JSR -426(A6)
  1456.     MOVEA.L (A7)+,A6
  1457.   END;
  1458. END;
  1459.  
  1460. FUNCTION SuperState : POINTER;
  1461. BEGIN
  1462.   ASM
  1463.     MOVE.L  A6,-(A7)
  1464.     MOVEA.L _ExecBase,A6
  1465.     JSR -150(A6)
  1466.     MOVEA.L (A7)+,A6
  1467.     MOVE.L  D0,@RESULT
  1468.   END;
  1469. END;
  1470.  
  1471. FUNCTION Supervisor(userFunction : tPROCEDURE) : ULONG;
  1472. BEGIN
  1473.   ASM
  1474.     MOVE.L  A6,-(A7)
  1475.     MOVEA.L userFunction,A5
  1476.     MOVEA.L _ExecBase,A6
  1477.     JSR -030(A6)
  1478.     MOVEA.L (A7)+,A6
  1479.     MOVE.L  D0,@RESULT
  1480.   END;
  1481. END;
  1482.  
  1483. FUNCTION TypeOfMem(address : POINTER) : ULONG;
  1484. BEGIN
  1485.   ASM
  1486.     MOVE.L  A6,-(A7)
  1487.     MOVEA.L address,A1
  1488.     MOVEA.L _ExecBase,A6
  1489.     JSR -534(A6)
  1490.     MOVEA.L (A7)+,A6
  1491.     MOVE.L  D0,@RESULT
  1492.   END;
  1493. END;
  1494.  
  1495. PROCEDURE UserState(sysStack : POINTER);
  1496. BEGIN
  1497.   ASM
  1498.     MOVE.L  A6,-(A7)
  1499.     MOVE.L  sysStack,D0
  1500.     MOVEA.L _ExecBase,A6
  1501.     JSR -156(A6)
  1502.     MOVEA.L (A7)+,A6
  1503.   END;
  1504. END;
  1505.  
  1506. PROCEDURE Vacate(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage);
  1507. BEGIN
  1508.   ASM
  1509.     MOVE.L  A6,-(A7)
  1510.     MOVEA.L sigSem,A0
  1511.     MOVEA.L bidMsg,A1
  1512.     MOVEA.L _ExecBase,A6
  1513.     JSR -546(A6)
  1514.     MOVEA.L (A7)+,A6
  1515.   END;
  1516. END;
  1517.  
  1518. FUNCTION Wait(signalSet : ULONG) : ULONG;
  1519. BEGIN
  1520.   ASM
  1521.     MOVE.L  A6,-(A7)
  1522.     MOVE.L  signalSet,D0
  1523.     MOVEA.L _ExecBase,A6
  1524.     JSR -318(A6)
  1525.     MOVEA.L (A7)+,A6
  1526.     MOVE.L  D0,@RESULT
  1527.   END;
  1528. END;
  1529.  
  1530. FUNCTION WaitIO(ioRequest : pIORequest) : SHORTINT;
  1531. BEGIN
  1532.   ASM
  1533.     MOVE.L  A6,-(A7)
  1534.     MOVEA.L ioRequest,A1
  1535.     MOVEA.L _ExecBase,A6
  1536.     JSR -474(A6)
  1537.     MOVEA.L (A7)+,A6
  1538.     MOVE.L  D0,@RESULT
  1539.   END;
  1540. END;
  1541.  
  1542. FUNCTION WaitPort(port : pMsgPort) : pMessage;
  1543. BEGIN
  1544.   ASM
  1545.     MOVE.L  A6,-(A7)
  1546.     MOVEA.L port,A0
  1547.     MOVEA.L _ExecBase,A6
  1548.     JSR -384(A6)
  1549.     MOVEA.L (A7)+,A6
  1550.     MOVE.L  D0,@RESULT
  1551.   END;
  1552. END;
  1553.  
  1554. END. (* UNIT EXEC *)
  1555.  
  1556. {
  1557.   $Log: exec.pp,v $
  1558.   Revision 1.3  1998/09/14 20:22:32  carl
  1559.     * Several bugfixes by Nils Sjoholm
  1560.  
  1561.   Revision 1.1.1.1  1998/03/25 11:18:47  root
  1562.   * Restored version
  1563.  
  1564.   Revision 1.3  1998/01/26 12:02:42  michael
  1565.   + Added log at the end
  1566.  
  1567.  
  1568.  
  1569.   Working file: rtl/amiga/exec.pp
  1570.   description:
  1571.   ----------------------------
  1572.   revision 1.2
  1573.   date: 1997/12/14 19:02:47;  author: carl;  state: Exp;  lines: +11 -10
  1574.   * small bugfixes
  1575.   ----------------------------
  1576.   revision 1.1
  1577.   date: 1997/12/10 13:48:45;  author: carl;  state: Exp;
  1578.   + exec dynamic library definitions and calls.
  1579.   =============================================================================
  1580. }
  1581.  
  1582.  
  1583.  
  1584.